package algorithm.sort;

/**
 * 选择排序
 * @author lsw
 * 2020-9-3 16:36:44
 */
public class SelectionSort {
    public int[] selectionSort(int[] a){
        for (int i=0;i<a.length;i++){
            // 数组中最小值的下标
            int minIndex = i;
            for (int j=i+1;j<a.length;j++){
                if(a[j]<a[minIndex]){// 如果当前元素小于目前数组中已知的最小值，则当前元素的下标就是数组中最小值的下标
                    minIndex = j;
                }
            }
            if (minIndex!=i) {
                // 将最小值放到数组前方
                int temp = a[minIndex];
                a[minIndex] = a[i];
                a[i] = temp;
            }
            }

        return a;
    }

    public static void main(String[] args) {
        int[] a = {5,1,6,2,3,9,8};
        SelectionSort sort = new SelectionSort();
        int[] array = sort.selectionSort(a);
        for (int i = 0; i < array.length; i++) {
            System.out.println(a[i]);
        }
    }

}
